题意:有$N$个点,$M$条双向边,$K$个被侵略城市,与这$K$个被侵略城市距离$\leqslant$$S$的城市就是危险城市。其他就是安全城市。安全城市的点权就是$P$,危险城市的点权就是$Q$,问才$1$号点到$N$号点的最小花费。
标记危险城市显然需要跑最短路,但是对于$K$个点跑$K$次最短路时间复杂度太高,于是我们建立虚点连接$K$个点,边权为$0$,原先道路边权为$1$,跑最短路即可,这样就可以找到所有危险城市了。
对于点权最短路,我们只需要将到达点的权值设为边权即可,对于到达点是危险城市或是$1$或$N$特判。
记得开$long long$
1 |
|